<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Validator;
use Auth;
use Hash;
class PasswordRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    public function yanzheng(){
        //通过使用Validator类调用extend方法,可以自定义验证规则,extend方法的第一个参数就是你自己定义的验证规则的名称
        //回调函数中的参数分析:
        //$attribute:得到要被验证的属性名称,其实也就是自定义的方法用给哪个字段,就会获得哪个字段的名称值
//        $value:得到对应属性名称的值,其实就是要被验证的字段,用户填写的内容是什么就得到什么
        Validator::extend('yuanmimayaozhengque', function ($attribute, $value, $parameters, $validator) {
            //最终需要返回真与假,如果是真,验证规则通过,如果是假,不通过
            //Hash类的check方法用来验证两个值是否相同,第一个参数是明文,第二个参数是密文,如果经过判断两个值相同,返回真,如果两个值不相同, 返回假
            return Hash::check($value,Auth::user()->password);
        });
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        //手动调用一下自定义的验证规则方法
        $this->yanzheng();
        return [
            'oldpassword' => 'required|yuanmimayaozhengque',
            'password' => 'required|confirmed',
        ];
    }

    public function messages()
    {
        return [
            'oldpassword.yuanmimayaozhengque' => '原密码输入错误!!!',
            "password.required"=>"密码不为空",
            "password.confirmed"=>"密码不一致"
        ];
    }

}
